package com.hk.commons.entity.view;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "orderView")
public class OrderView implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8416151971127948431L;

	@Id
	private Long orderId;

	private Long userId;

	// 用户真实姓名
	private String userRealName;

	// 用户手机号
	private String userPhone;

	// 用户推荐码
	private String recommendCode;

	// 用户所属渠道
	private Integer userChannel;

	// 用户组织架构id
	private Integer userOrgId;

	// 用户组织架构Code
	private String userOrgCode;

	// 用户组织架构名称
	private String userOrgName;

	// 理财师的手机号
	private Long finUserId;

	// 理财师的手机号
	private String finPhone;

	// 理财师的真实姓名
	private String finUserRealName;

	// 理财师所属渠道
	private Integer finChannel;

	// 理财师组织架构id
	private Integer finOrgId;

	// 理财师组织架构Code
	private String finOrgCode;

	// 理财师组织机构(部门)全名
	private String finOrgName;

	// 产品id
	private Long productId;

	// 产品名称
	private String productName;

	// 产品期限，用于计算
	private Integer proTerm;

	// 产品期限，用于显示
	private Integer proTermStr;

	// 佣金率
	private String commissionRate;

	// 折标系数
	private String niggerHead;

	// 折标金额
	private String niggerAmount;

	// 佣金总额
	private BigDecimal commissionAmount;

	/**
	 * 
	 * 佣金发放状态
	 */
	private Integer commissionStatus;

	/**
	 * 
	 * 佣金发放时间
	 */
	private Integer commissionPayTime;

	private Integer payStatus;

	private Integer confirmStatus;
	// 订单创建时间
	private Long orderCreatedOn;

	// 订单确认时间
	private Long orderConfirmDate;

	// 订单起息时间
	private Long orderTradeDate;

	// 还本付息时间
	private Long dividendDate;

	//清算时间
	private Timestamp clearDate;

	//是否定向 ，0：否 ，1：是
	private Integer directional;

	// 购买金额
	private BigDecimal successAmount;

	// 产品收益
	private BigDecimal prodDividend;

	// 加息收益
	private BigDecimal extraDividend;

	// 总收益
	private BigDecimal dividend;

	// 订单所属渠道
	private Integer orderChannel;

	// 订单组织架构ID
	private Integer orderOrgId;

	// 订单组织架构Code
	private Integer orderOrgCode;

	// 订单组织架构名称
	private String orderOrgName;
	
	//支付方式id
	private Long paymentId;
	
	// 加息券id
	private Long userCardId;

	// 加息券描述
	private String paymentNo;

	private String identityNo;

	private String bankName;
	private String userCardDesc;

	// 加息券加息率
	private String userCardRate;

	private String userCardFaceValue; //优惠券面值

	private BigDecimal userCardDividend; //加息券收益

	private Integer benefitType; // 优惠券类型：1,加息券; 2:体验金; 5:贴息券,

	private Integer companyId;

	private BigDecimal prodAddRate;

	private BigDecimal  addRateDividend;


	private String contractTitle;//合同标题

	private String contractUrl;//合同Url

	private String contractUrlHTML;//合同Url

	private BigDecimal proRate; //产品收益率

	private  BigDecimal extRate; //加息收益率

	private Integer extraTerm; //加息券加息天数

	private Integer term;//产品投资期限


	private BigDecimal totalRate; //总收益率


	private String confirmationTitle; //投资确认函 PDF
	private String confirmationPdf; //投资确认函 PDF
	private String confirmationHtml; //投资确认函 HTML

	private String subBankName;//分行名称

	private Integer closeAccount; //是否销户（0：末销户，1：已销户）

	public String getUserCardFaceValue() {
		return userCardFaceValue;
	}

	public void setUserCardFaceValue(String userCardFaceValue) {
		this.userCardFaceValue = userCardFaceValue;
	}

	public Integer getBenefitType() {
		return benefitType;
	}

	public void setBenefitType(Integer benefitType) {
		this.benefitType = benefitType;
	}
	private String kycUrl;
	private String riskLevel;

	public Integer getTerm() {
		return term;
	}

	public void setTerm(Integer term) {
		this.term = term;
	}

	public Integer getExtraTerm() {
		return extraTerm;
	}

	public void setExtraTerm(Integer extraTerm) {
		this.extraTerm = extraTerm;
	}

	public BigDecimal getTotalRate() {
		return totalRate;
	}

	public void setTotalRate(BigDecimal totalRate) {
		this.totalRate = totalRate;
	}

	public String getSubBankName() {
		return subBankName;
	}

	public void setSubBankName(String subBankName) {
		this.subBankName = subBankName;
	}

	public String getConfirmationHtml() {
		return confirmationHtml;
	}


	public BigDecimal getUserCardDividend() {
		return userCardDividend;
	}

	public void setUserCardDividend(BigDecimal userCardDividend) {
		this.userCardDividend = userCardDividend;
	}

	public void setConfirmationHtml(String confirmationHtml) {
		this.confirmationHtml = confirmationHtml;
	}

	public String getConfirmationPdf() {
		return confirmationPdf;
	}

	public void setConfirmationPdf(String confirmationPdf) {
		this.confirmationPdf = confirmationPdf;
	}

	public String getConfirmationTitle() {
		return confirmationTitle;
	}

	public void setConfirmationTitle(String confirmationTitle) {
		this.confirmationTitle = confirmationTitle;
	}

	public BigDecimal getAddRateDividend() {
		return addRateDividend;
	}

	public void setAddRateDividend(BigDecimal addRateDividend) {
		this.addRateDividend = addRateDividend;
	}

	public String getContractUrlHTML() {
		return contractUrlHTML;
	}

	public void setContractUrlHTML(String contractUrlHTML) {
		this.contractUrlHTML = contractUrlHTML;
	}

	public BigDecimal getProRate() {
		return proRate;
	}

	public void setProRate(BigDecimal proRate) {
		this.proRate = proRate;
	}

	public BigDecimal getExtRate() {
		return extRate;
	}

	public void setExtRate(BigDecimal extRate) {
		this.extRate = extRate;
	}

	public Long getOrderId() {
		return orderId;
	}

	public void setOrderId(Long orderId) {
		this.orderId = orderId;
	}

	public Long getUserId() {
		return userId;
	}

	public Integer getPayStatus() {
		return payStatus;
	}

	public void setPayStatus(Integer payStatus) {
		this.payStatus = payStatus;
	}

	public Integer getConfirmStatus() {
		return confirmStatus;
	}

	public void setConfirmStatus(Integer confirmStatus) {
		this.confirmStatus = confirmStatus;
	}

	public void setUserId(Long userId) {
		this.userId = userId;
	}

	public String getUserRealName() {
		return userRealName;
	}

	public void setUserRealName(String userRealName) {
		this.userRealName = userRealName;
	}

	public String getUserPhone() {
		return userPhone;
	}

	public void setUserPhone(String userPhone) {
		this.userPhone = userPhone;
	}

	public String getRecommendCode() {
		return recommendCode;
	}

	public void setRecommendCode(String recommendCode) {
		this.recommendCode = recommendCode;
	}

	public Integer getUserChannel() {
		return userChannel;
	}

	public void setUserChannel(Integer userChannel) {
		this.userChannel = userChannel;
	}

	public Integer getUserOrgId() {
		return userOrgId;
	}

	public void setUserOrgId(Integer userOrgId) {
		this.userOrgId = userOrgId;
	}

	public String getUserOrgName() {
		return userOrgName;
	}

	public void setUserOrgName(String userOrgName) {
		this.userOrgName = userOrgName;
	}

	public String getFinPhone() {
		return finPhone;
	}

	public void setFinPhone(String finPhone) {
		this.finPhone = finPhone;
	}

	public String getFinUserRealName() {
		return finUserRealName;
	}

	public void setFinUserRealName(String finUserRealName) {
		this.finUserRealName = finUserRealName;
	}

	public Integer getFinChannel() {
		return finChannel;
	}

	public void setFinChannel(Integer finChannel) {
		this.finChannel = finChannel;
	}

	public Integer getFinOrgId() {
		return finOrgId;
	}

	public void setFinOrgId(Integer finOrgId) {
		this.finOrgId = finOrgId;
	}

	public String getFinOrgName() {
		return finOrgName;
	}

	public void setFinOrgName(String finOrgName) {
		this.finOrgName = finOrgName;
	}

	public Long getProductId() {
		return productId;
	}

	public void setProductId(Long productId) {
		this.productId = productId;
	}

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	public Integer getProTerm() {
		return proTerm;
	}

	public void setProTerm(Integer proTerm) {
		this.proTerm = proTerm;
	}

	public Integer getProTermStr() {
		return proTermStr;
	}

	public void setProTermStr(Integer proTermStr) {
		this.proTermStr = proTermStr;
	}

	public String getCommissionRate() {
		return commissionRate;
	}

	public void setCommissionRate(String commissionRate) {
		this.commissionRate = commissionRate;
	}

	public BigDecimal getCommissionAmount() {
		return commissionAmount;
	}

	public void setCommissionAmount(BigDecimal commissionAmount) {
		this.commissionAmount = commissionAmount;
	}

	public Long getOrderCreatedOn() {
		return orderCreatedOn;
	}

	public void setOrderCreatedOn(Long orderCreatedOn) {
		this.orderCreatedOn = orderCreatedOn;
	}

	public Long getOrderConfirmDate() {
		return orderConfirmDate;
	}

	public void setOrderConfirmDate(Long orderConfirmDate) {
		this.orderConfirmDate = orderConfirmDate;
	}

	public Long getOrderTradeDate() {
		return orderTradeDate;
	}

	public void setOrderTradeDate(Long orderTradeDate) {
		this.orderTradeDate = orderTradeDate;
	}

	public Long getDividendDate() {
		return dividendDate;
	}

	public void setDividendDate(Long dividendDate) {
		this.dividendDate = dividendDate;
	}

	public BigDecimal getSuccessAmount() {
		return successAmount;
	}

	public void setSuccessAmount(BigDecimal successAmount) {
		this.successAmount = successAmount;
	}

	public BigDecimal getProdDividend() {
		return prodDividend;
	}

	public void setProdDividend(BigDecimal prodDividend) {
		this.prodDividend = prodDividend;
	}

	public BigDecimal getExtraDividend() {
		return extraDividend;
	}

	public void setExtraDividend(BigDecimal extraDividend) {
		this.extraDividend = extraDividend;
	}

	public BigDecimal getDividend() {
		return dividend;
	}

	public void setDividend(BigDecimal dividend) {
		this.dividend = dividend;
	}

	public Integer getOrderChannel() {
		return orderChannel;
	}

	public void setOrderChannel(Integer orderChannel) {
		this.orderChannel = orderChannel;
	}

	public Integer getOrderOrgId() {
		return orderOrgId;
	}

	public void setOrderOrgId(Integer orderOrgId) {
		this.orderOrgId = orderOrgId;
	}

	public String getOrderOrgName() {
		return orderOrgName;
	}

	public void setOrderOrgName(String orderOrgName) {
		this.orderOrgName = orderOrgName;
	}

	public Long getUserCardId() {
		return userCardId;
	}

	public void setUserCardId(Long userCardId) {
		this.userCardId = userCardId;
	}

	public String getUserCardDesc() {
		return userCardDesc;
	}

	public void setUserCardDesc(String userCardDesc) {
		this.userCardDesc = userCardDesc;
	}

	public String getUserCardRate() {
		return userCardRate;
	}

	public void setUserCardRate(String userCardRate) {
		this.userCardRate = userCardRate;
	}

	public String getUserOrgCode() {
		return userOrgCode;
	}

	public void setUserOrgCode(String userOrgCode) {
		this.userOrgCode = userOrgCode;
	}

	public String getFinOrgCode() {
		return finOrgCode;
	}

	public void setFinOrgCode(String finOrgCode) {
		this.finOrgCode = finOrgCode;
	}

	public Integer getOrderOrgCode() {
		return orderOrgCode;
	}

	public void setOrderOrgCode(Integer orderOrgCode) {
		this.orderOrgCode = orderOrgCode;
	}

	public Integer getCommissionStatus() {
		return commissionStatus;
	}

	public void setCommissionStatus(Integer commissionStatus) {
		this.commissionStatus = commissionStatus;
	}

	public Integer getCommissionPayTime() {
		return commissionPayTime;
	}

	public void setCommissionPayTime(Integer commissionPayTime) {
		this.commissionPayTime = commissionPayTime;
	}

	public Long getFinUserId() {
		return finUserId;
	}

	public void setFinUserId(Long finUserId) {
		this.finUserId = finUserId;
	}

	public String getNiggerHead() {
		return niggerHead;
	}

	public void setNiggerHead(String niggerHead) {
		this.niggerHead = niggerHead;
	}

	public String getNiggerAmount() {
		return niggerAmount;
	}

	public void setNiggerAmount(String niggerAmount) {
		this.niggerAmount = niggerAmount;
	}

	public Timestamp getClearDate() {
		return clearDate;
	}

	public void setClearDate(Timestamp clearDate) {
		this.clearDate = clearDate;
	}

	public Integer getDirectional() {
		return directional;
	}

	public void setDirectional(Integer directional) {
		this.directional = directional;
	}

	public Integer getCompanyId() {
		return companyId;
	}

	public void setCompanyId(Integer companyId) {
		this.companyId = companyId;
	}

	public String getPaymentNo() {
		return paymentNo;
	}

	public void setPaymentNo(String paymentNo) {
		this.paymentNo = paymentNo;
	}

	public String getIdentityNo() {
		return identityNo;
	}

	public void setIdentityNo(String identityNo) {
		this.identityNo = identityNo;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	public Long getPaymentId() {
		return paymentId;
	}

	public void setPaymentId(Long paymentId) {
		this.paymentId = paymentId;
	}

	public String getContractUrl() {
		return contractUrl;
	}

	public void setContractUrl(String contractUrl) {
		this.contractUrl = contractUrl;
	}


	public String getContractTitle() {
		return contractTitle;
	}

	public void setContractTitle(String contractTitle) {
		this.contractTitle = contractTitle;
	}

	public BigDecimal getProdAddRate() {
		return prodAddRate;
	}

	public void setProdAddRate(BigDecimal prodAddRate) {
		this.prodAddRate = prodAddRate;
	}

	@Override
	public String toString() {
		return "OrderView{" +
				"orderId=" + orderId +
				", userId=" + userId +
				", userRealName='" + userRealName + '\'' +
				", userPhone='" + userPhone + '\'' +
				", recommendCode='" + recommendCode + '\'' +
				", userChannel=" + userChannel +
				", userOrgId=" + userOrgId +
				", userOrgCode='" + userOrgCode + '\'' +
				", userOrgName='" + userOrgName + '\'' +
				", finUserId=" + finUserId +
				", finPhone='" + finPhone + '\'' +
				", finUserRealName='" + finUserRealName + '\'' +
				", finChannel=" + finChannel +
				", finOrgId=" + finOrgId +
				", finOrgCode='" + finOrgCode + '\'' +
				", finOrgName='" + finOrgName + '\'' +
				", productId=" + productId +
				", productName='" + productName + '\'' +
				", proTerm=" + proTerm +
				", proTermStr=" + proTermStr +
				", commissionRate='" + commissionRate + '\'' +
				", niggerHead='" + niggerHead + '\'' +
				", niggerAmount='" + niggerAmount + '\'' +
				", commissionAmount=" + commissionAmount +
				", commissionStatus=" + commissionStatus +
				", commissionPayTime=" + commissionPayTime +
				", payStatus=" + payStatus +
				", confirmStatus=" + confirmStatus +
				", orderCreatedOn=" + orderCreatedOn +
				", orderConfirmDate=" + orderConfirmDate +
				", orderTradeDate=" + orderTradeDate +
				", dividendDate=" + dividendDate +
				", clearDate=" + clearDate +
				", directional=" + directional +
				", successAmount=" + successAmount +
				", prodDividend=" + prodDividend +
				", extraDividend=" + extraDividend +
				", dividend=" + dividend +
				", orderChannel=" + orderChannel +
				", orderOrgId=" + orderOrgId +
				", orderOrgCode=" + orderOrgCode +
				", orderOrgName='" + orderOrgName + '\'' +
				", paymentId=" + paymentId +
				", userCardId=" + userCardId +
				", paymentNo='" + paymentNo + '\'' +
				", identityNo='" + identityNo + '\'' +
				", bankName='" + bankName + '\'' +
				", userCardDesc='" + userCardDesc + '\'' +
				", userCardRate='" + userCardRate + '\'' +
				", userCardFaceValue='" + userCardFaceValue + '\'' +
				", userCardDividend=" + userCardDividend +
				", benefitType=" + benefitType +
				", companyId=" + companyId +
				", prodAddRate=" + prodAddRate +
				", addRateDividend=" + addRateDividend +
				", contractTitle='" + contractTitle + '\'' +
				", contractUrl='" + contractUrl + '\'' +
				", contractUrlHTML='" + contractUrlHTML + '\'' +
				", proRate=" + proRate +
				", extRate=" + extRate +
				", extraTerm=" + extraTerm +
				", term=" + term +
				", totalRate=" + totalRate +
				", confirmationTitle='" + confirmationTitle + '\'' +
				", confirmationPdf='" + confirmationPdf + '\'' +
				", confirmationHtml='" + confirmationHtml + '\'' +
				", subBankName='" + subBankName + '\'' +
				'}';
	}

	public String getKycUrl() {
		return kycUrl;
	}

	public void setKycUrl(String kycUrl) {
		this.kycUrl = kycUrl;
	}

	public String getRiskLevel() {
		return riskLevel;
	}

	public void setRiskLevel(String riskLevel) {
		this.riskLevel = riskLevel;
	}

	public Integer getCloseAccount() {
		return closeAccount;
	}

	public void setCloseAccount(Integer closeAccount) {
		this.closeAccount = closeAccount;
	}
}
